“Programmable devices” are integrated circuits that contain nonvolatile memory (“NVM”). There are many kinds in use today, and it is certain that more new kinds will be introduced in the future. Nonvolatile memory is used for many purposes and occurs in many forms in many different kinds of programmable devices. For example, programmable devices include, but are not limited to:
1. “PROM” (Programmable Read-Only Memory) is an example of a programmable nonvolatile device.
2. “PAL” and “GAL” (Programmable Array Logic and Generic Array Logic) have similarly been used for many years to implement simple logic functions and to create replacements for ICs that have become obsolete.
3. “EEPROM” (Electrically Erasable PROM). These types of NVM are most often used for bootstrap loading microprocessors.
4. “Flash memory” and its many relatives are generally used to store instruction codes for microprocessors. Due to their relatively fast programming times, they are also used in many consumer storage applications.
5. Many microcontrollers contain embedded nonvolatile memories, often including both FLASH and EEPROM memories.
6. The “FPGA” (Field-Programmable Gate Array) contains memory cells that control switches and the switches, in turn, establish the logic networks that define the functions of the FPGA. FPGAs occur in endless variety and many kinds of FPGAs are nonvolatile.
Some FPGAs are built internally using volatile memory cells rather than nonvolatile cells. In most applications of volatile FPGAs, an associated nonvolatile memory IC supplies the bits that are loaded into the FPGA's switches. In other applications of volatile FPGAs, the loading of bits is managed by a processor. The local processor may have additional duties to perform other than programming the FPGA. Indeed, the FPGA hardware may be used in more than one way during the course of executing various jobs. For example, after a FPGA has served one purpose, the processor can reload it and use it for a different purpose.
The use of nonvolatile memory is not strictly limited to digital ICs. There are “analog” ICs that use nonvolatile memory, for example, to hold potentiometer adjustment settings, to provide lookup tables for analog functions, and to hold trim settings for high-precision devices. “Digital” flash memories that hold more than one bit per cell can also be regarded as having an analog basis.
“Programmable” integrated circuits are distinct from and different than “nonprogrammable” integrated circuits. In particular, “nonprogrammable” integrated circuits are circuits whose configuration is fixed at the time they are manufactured. For example, a great number of “standard” ICs are made from fixed mask sets. These can be purchased from catalogs containing published specifications. “Custom” or “semicustom” ICs are also nonprogrammable. A custom IC is one that is built for a specific purpose for a specific customer. Making a custom IC generally involves making a custom mask that establishes memory contents or logic network at the time the wafer is processed. Such a mask is customer-specified, but is nonetheless fixed. There are masked read-only memories and masked gate arrays, for example, which can be customized by the circuit designer but cannot be altered once they are packaged.
In contrast, programmable integrated circuits may be programmed after they are manufactured. This feature of programmable devices offers many advantages over nonprogrammable devices from the perspective of the people who design and manufacture circuit boards. One advantage is that a read-only memory's contents need not be finalized until late in the manufacturing process, which reduces lead time by making it possible to start board manufacturing before logic designs are fully completed. Another advantage is that a programmable IC makes it possible to introduce engineering changes quickly, while products are in production. Additionally, programmable ICs allow circuit boards to implement wholly different functionality while remaining identical to one another with respect to procurement and inventory logistics which reduces hardware cost and manufacturing overhead.
Programmable devices, to be useful, require a mechanism for programming them. Conventionally, such a device is called a “prom programmer.” The prom programmer executes algorithms that cause the programming information to be written into the memories in the devices. Raw, unprogrammed devices are brought from stock, programmed, labeled, and either returned to stock or taken to the place where they will be installed into circuit boards. The programming protocols, also referred to herein as device algorithms, that are specified by the IC manufacturers may involve high voltages and may involve reading data back out of the device to see when the programming or erasing operation has succeeded.
“ISP” (In-System Programming) is defined as the act of “programming a component after it has been permanently installed on a circuit board.” ICs can be specifically designed for ISP. A chip may be generally regarded as an ISP chip if the IC programming protocol involves no damaging voltages and if its programming protocol can be executed successfully in the presence of other components. In addition, circuit boards can be designed to allow the in-system programming of ICs that were not originally designed as ISP devices. A given device may be ISP or not ISP based on its original design and on the constraints imposed on it by surrounding components on the board to which it is attached.
Most ISP chips use bus protocols that are standard in the electronics industry, such as “I2C” (Inter-IC Communications), “SPI” (Serial Peripheral Interface), “MicroWire,” “JTAG” (Joint Test Action Group), and so forth. The four protocols mentioned above are well known and widely used standards and are known to persons of ordinary skill in the art of electronic design. Other ISPs may use custom designed bus protocols.
The advantages of ISP over conventional programmability are considerable. A conventional programmable chip needs to be handled twice, once for programming the chip and a second time for installing the chip on its circuit board.
ISP greatly simplifies material logistics as well since the programmed parts need not be renumbered, labeled, counted, or depreciated. When the design changes, the stock does not have to be purged and updated.
If ISP activities are combined with automatic testing, further advantages accrue. Loading code into programmable ICs adds value to the board, as the board coming out of test is not identical to the board going in. The test equipment can therefore be seen as a value-added process step in contrast to conventional testing wherein the board under test is tested, but not programmed. The success or failure of the programming operation can be counted as an additional quality assurance test as well. Finally, the testing station is already a required part of the assembly operation. If the testing station carries out the programming and the programming time is not excessive, an additional programming station is not required.
People who set up assembly lines for manufacturing printed circuit assemblies have a lot of different kinds of automatic test equipment from which to choose. For the least amount of money, an “MDA” (Manufacturing Defect Analyzer) or low end “ICT” (In-Circuit Tester) capable of detecting solder shorts, making analog measurements, and checking connectivity pin faults on integrated circuits may be obtained. For larger dollar values, complex combinational testers capable of conducting digital function tests and making parametric measurements with board power applied may be obtained. A vast price disparity exists from one end of the “ATE” (Automatic Test Equipment) market spectrum to the other. A so-called “high end” automatic tester may cost 50 times as much as an MDA. Regardless of the price of the machine, the ISP facilities currently available are minimal and are generally not capable of operating at a speed necessary for programming as part of the assembly line.
ISP is a rapidly growing segment in the programmable-IC market, estimated to be doubling annually. The ISP advantages have been known for some time, but growth in their use, particularly the combination of ISP with test equipment such as an MDA or ICT, has not matched the growth of the ISP integrated circuit market as a whole. The slow growth of ISP and ISP with testing is the result of the drawbacks existing in current systems. For example, the time taken to perform programming with today's test equipment is not acceptable. Additionally, current test equipment is not capable of managing and/or implementing ISP routines necessary to fully test an ISP device. Still further, existing ISP equipment does not provide the ability to program multiple ISP devices of various types, each potentially requiring a different bus protocol simultaneously.
Accordingly, there is a need for a system and apparatus that resolves the drawbacks that exist with typical ISP equipment. Additionally, a system and apparatus that resolves these problems that may be utilized in conjunction with any existing Automatic Test Equipment, including high-end in-circuit tester, low-end manufacturing defect analyzer, or any type of equipment there between, is desirable.